package math;

public class jijin {
    private static double principal=10000.0;//本金1W
    private static double rate=0.28;//每年20%的收益率，20年的年收益为18.3
    // (注意，20年支付宝给的总收益率是0.183，这是全部资金除以收益，但是20年基金收入是2284.59，算出来我共有12475元，
    // 但是实际上我投入基金的钱20年底也就8K左右，而且还是在有逐渐投入的情况下，因此理论的话应该是超过0.28，所以在计算的时候可以乐观一点
    private static double income=0;//假设每个月有n闲钱可以投进去,这个闲钱是打工的钱，不算基金本身赚到的钱
    private static int num=1;//月份计数
    private static double preMonth=(rate/12)+1;//转换成每月的收益
    private static double thisIncome=0;//该月收入
    private static double thisTotal=principal;//总共钱数

    private static double getmoney=0;//算一下除去投入的部分，总共赚了多少
    private static double pay=principal;//投入的钱

    public static double countByMouth(double total,int n){
//        if (choess=="计算到达预计月收入所需的月份"){
//
//        }else if(choess=="计算预计n月后的月收入"){
//
//        }
        if(n==0){
            return total;
        }else {
            pay=pay+income;//投入的钱
            thisIncome=(total+income)*(preMonth-1);
            total=(total+income)*preMonth;//假设是月初投钱
            thisTotal=total;
            getmoney=total-pay;
            System.out.println("现在是第"+num+"月,该月总共有"+total+"元，预计该月收益约为"+thisIncome+"元，总共赚了"+getmoney+"元,共投入"+pay+"元");
            num++;
            return countByMouth(total,n-1);
        }
    }

    public static int countByMoney(double total,int n){
        if(thisIncome>n){
            return num;
        }else {
            pay=pay+income;//投入的钱
            thisIncome=(total+income)*(preMonth-1);
            total=(total+income)*preMonth;//假设是月初投钱
            getmoney=total-pay;
            System.out.println("现在是第"+num+"月,该月总共有"+total+"元，预计该月收益约为"+thisIncome+"元，总共赚了"+getmoney+"元,共投入"+pay+"元");
            num++;
            return countByMoney(total,n-1);
        }
    }

    public static void main(String[] args) {
        rate = 0.25;
        String line="*********************************************************分割线***********************************************************************************************************************************";
//        countByMouth(principal,12*4);
        income=3000;
        System.out.println("先每个月投3K投个1年");
        System.out.println(line);
        countByMouth(thisTotal,12*1);//先每个月投3K投个1年

        income=4000;
        System.out.println("然后每个月投4K投3年");
        System.out.println(line);
        countByMoney(thisTotal,5000);

//        System.out.println("现在每个月的收益为"+thisIncome+"月收入超过"+n+"所需时间为"+num+"个月，约为"+(double)num/12+"年");
        System.out.println("现在每个月的收益为"+thisIncome+"总共赚了"+getmoney+"总共有"+thisTotal);
    }
}
